import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Enemigo here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class SoldadoEspada extends Enemigo
{
    //private GreenfootImage image;
    int delay=0;
    private GreenfootImage [] soldier = new GreenfootImage[19];
    private GreenfootImage [] soldierRight = new GreenfootImage[19];
    int cont=0;
    int direccion=-1;
   

    /**
     * Act - do whatever the Enemigo wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public SoldadoEspada(int x0,int xf,int nivel)
    {
        super(7,x0,xf,nivel);
        for(int i=1; i<= soldier.length;i++)
    {
        soldier[i-1] = new GreenfootImage("Soldier"+i+".png");
        soldier[i-1].scale(80,120);
        soldier[i-1].mirrorHorizontally();
    }
        for(int i=1; i<= soldierRight.length;i++)
    {
        soldierRight[i-1] = new GreenfootImage("Soldier"+i+".png");
        soldierRight[i-1].scale(80,120);
        //soldier[i-1].mirrorHorizontally();
    }
    
    
    //this.generaDireccion();
    
    this.setSprite();
    
    }
    public void act()
    {
        checkAsesinato();
        this.animacion();
        
        
         super.act();
    }
    
    public void generaDireccion()
    {
        if(((FlagWarWorld)getWorld()).getJugador() )
        {
          int x1=getX();
          int x2=((FlagWarWorld)getWorld()).getXJugador() ;
          if(x2-x1<=0)
          {
              direccion=-1;
          }
            else
            {
                direccion=1;
            }
        
        }    
    }
    
    public void animacion() 
    {
        
        if(delay==10)
        {
            //move(-2);
            delay=0;
            cont++;
             this.setSprite();
            if(cont==soldier.length-1)
            {
                cont=0;
                //this.generaDireccion();
               
            }
            if(super.getNivel()==1)
            {
            this.chacaLimite();
           }
           else
           {
               generaDireccion();
            }
            move(2*direccion);
            
        }
        else
        {
            delay++;
        }
       
       
        // Add your action code here.
    }    
   public void checkAsesinato()
   
   {
    
       if(((FlagWarWorld)getWorld()).getInmunidad()==false){
       
       if(( getOneIntersectingObject(Body.class) != null && cont >= 8 && cont <= 13 ))
       {
           int x1 = ((FlagWarWorld)getWorld()).getXJugador() ;
           int x2 = getX();
           
           if((x2-x1>=0 && direccion<0) || (x2-x1<=0 && direccion>0) )
           {
        setLocation(((FlagWarWorld)getWorld()).getXJugador()-(25*direccion),getY());   
        //System.out.println("Muerto");   
        ((FlagWarWorld)getWorld()).setJugador(false);
        
        if(cont >= 8 && cont <= 13)
         {
             ((FlagWarWorld)getWorld()).setImageJugador(1);
             
         }
        }
        ///Greenfoot.delay(1000);
       }
   }
}
  public void setSprite()
  {
       if(direccion==-1)
    setImage(soldier[cont]);
   else
   {
    setImage(soldierRight[cont]);   
    }
    
   }
   
   public void chacaLimite()
   {
       if(super.Limite())
       {
           this.cambiaDiereccion();
        }
   }
   
   public void cambiaDiereccion()
   {
       direccion=direccion*-1;
   }
  
   
    
}
